﻿using System;
using System.Collections.Generic;
using CardPlay.Model.GameModel;
using CardPlay.Model.GameModel.Actions;

namespace CardPlay.Client.ViewModels
{
    public interface IPlayingContext
    {
        ICardGame Game { get; }

        ICanvas Canvas { get; }

        IDraggable CreateDragObject(PartLocation partLocation);
        IDisposable CreatePeekObject(PartLocation partLocation);

        void InvokeAutoActionAt(PartLocation partLocation);
        bool InvokeActionAt(PartLocation partLocation);

        bool HandleDrop(RemovePileAction pickupAction, IEnumerable<PartLocation> candidateLocations);
    }
}